Guava Function এবং Java Lambda Expression একত্রে ব্যবহার করা হলে কোড আরও সংক্ষিপ্ত এবং কার্যকর হয়। Guava লাইব্রেরি জাভা ৮-এর আগে ফাংশনাল প্রোগ্রামিং স্টাইলের সমর্থন দেওয়ার জন্য Function ইন্টারফেস সরবরাহ করত। কিন্তু জাভা ৮-এর পরে, Lambda Expressions এবং java.util.function প্যাকেজ যুক্ত হয়, যা Guava-এর Function-এর বিকল্প হিসেবে কাজ করে।
Guava Function এবং Lambda Expression-এর সমন্বয়
নীচে Guava Function এবং Java Lambda Expression একত্রে ব্যবহার করার উদাহরণ দেওয়া হলো:
উদাহরণ ১: Guava Function-এর বেসিক ব্যবহার
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import java.util.List;
public class GuavaFunctionExample {
public static void main(String[] args) {
// Guava Function ডিফাইন করা
Function<String, Integer> stringLengthFunction = new Function<String, Integer>() {
@Override
public Integer apply(String input) {
return input.length();
}
};
// একটি String লিস্টের প্রতিটি আইটেমের দৈর্ঘ্য বের করা
List<String> names = List.of("Alice", "Bob", "Charlie");
List<Integer> nameLengths = Lists.transform(names, stringLengthFunction);
System.out.println("Name lengths using Guava Function: " + nameLengths);
}
}
উদাহরণ ২: Lambda Expression ব্যবহার করে Guava Function সরলীকরণ
import com.google.common.collect.Lists;
import java.util.List;
public class GuavaWithLambdaExample {
public static void main(String[] args) {
// Lambda Expression ব্যবহার করে Function ডিফাইন করা
java.util.function.Function<String, Integer> stringLengthFunction = input -> input.length();
// একটি String লিস্টের প্রতিটি আইটেমের দৈর্ঘ্য বের করা
List<String> names = List.of("Alice", "Bob", "Charlie");
List<Integer> nameLengths = Lists.transform(names, stringLengthFunction::apply); // Lambda Function ব্যবহার
System.out.println("Name lengths using Lambda: " + nameLengths);
}
}
উদাহরণ ৩: Guava Function ও Lambda Expression-এর কম্বিনেশন
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import java.util.List;
public class CombinedExample {
public static void main(String[] args) {
// Guava Function এবং Lambda Expression একত্রে ব্যবহার
Function<String, Integer> guavaFunction = input -> input.length(); // Lambda দিয়ে Guava Function
List<String> names = List.of("Alice", "Bob", "Charlie");
List<Integer> nameLengths = Lists.transform(names, guavaFunction::apply);
System.out.println("Name lengths using Guava and Lambda: " + nameLengths);
}
}
কাজের ধাপ:
- Guava Function ব্যবহার:
- Guava-এর
Functionইন্টারফেস একটি ইনপুট নেয় এবং একটি আউটপুট প্রদান করে। - এটিকে
Lists.transform()এর মতো মেথডে ব্যবহার করা যায়।
- Guava-এর
- Lambda Expression ব্যবহার:
- জাভা ৮-এর Lambda Expression সহজেই Guava-এর
Functionএর সমান কাজ করতে পারে।
- জাভা ৮-এর Lambda Expression সহজেই Guava-এর
- Lambda এবং Guava একত্রে:
- Lambda Expression এর মাধ্যমে Guava
Functionকে আরও সংক্ষিপ্ত করা সম্ভব।
- Lambda Expression এর মাধ্যমে Guava
প্রধান সুবিধা:
- Lambda ব্যবহার করে কোডের সরলীকরণ।
- Guava এর বিদ্যমান টুল এবং মেথডগুলোর শক্তি ব্যবহার।
- পুরনো কোডের সাথে সামঞ্জস্য রেখে নতুন ফিচার যুক্ত করা।
লক্ষ্য:
যদি আপনি নতুন কোড লিখছেন, জাভা ৮ বা তার পরবর্তী ফিচার (যেমন java.util.function.Function) সরাসরি ব্যবহার করুন। তবে Guava-এর বিদ্যমান লাইব্রেরির সুবিধা নিতে চাইলে Lambda Expressions ও Guava Function একত্রে ব্যবহার করা যেতে পারে।
Read more